package leetcode.题库.数组.双指针;

/**
 * @author: yan
 * @description: 短无序连续子数组
 * @create: 2023-02-14 16:39
 **/
/**
 * 给你一个整数数组nums，你需要找出一个连续子数组，如果对这个子数组进行升序排序，那么整个数组都会变为升序排序。
 * 请你找出符合题意的最短子数组，并输出它的长度
 */

public class Solution581 {
    public static void main(String[] args) {
        int[] arr = new int[]{1,3,2,2,2};
        System.out.println(findUnsortedSubarray(arr));
    }
    public static int findUnsortedSubarray(int[] nums) {
        int max = Integer.MIN_VALUE, min = Integer.MAX_VALUE;
        int left = 0, right = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] < max) {
                right = i;
            } else {
                max = nums[i];
            }
        }
        for (int i = nums.length - 1; i >= 0; i--) {
            if (nums[i] > min) {
                left = i;
            } else {
                min = nums[i];
            }
        }
        return right == 0 ? 0 : right - left + 1;
    }
}
